package com.zmn.oms.zmn.business.interfaces.order;

import com.zmn.oms.common.dto.ResultDTO;
import com.zmn.oms.model.bo.order.VerifyOrderBO;
import com.zmn.oms.model.dto.order.OrderDTO;
import com.zmn.oms.model.dto.order.zmn.FactoryUpdateOrderDTO;
import com.zmn.oms.model.dto.order.zmn.ZsNormalUpdateOrderDTO;

/**
 * @ClassName ZsVerifyOrderBService
 * @description: 校验订单
 * @author: wangyanci
 * @create: 2021-07-23 15:24
 * @Version 1.0
 **/
public interface OrderVerifyBService {

    /**
     * 校验是否 派单撤回
     * @param orderDTO
     * @return
     */
    ResultDTO<String> verifyIsDistributeBack(OrderDTO orderDTO, Boolean beforeUpdate);

    /**
     * 校验是否 分单撤回
     * @param orderDTO
     * @return
     */
    ResultDTO<String> verifyIsAssignBack(OrderDTO orderDTO);

    /**
     * 校验修改订单
     * @param orderDTO
     * @param isGrid 是否平台直派
     * @return
     */
    VerifyOrderBO verifyUpdateOrderAll(OrderDTO orderDTO, Boolean isGrid);

    ResultDTO verifyNormalUpdateOrder(ZsNormalUpdateOrderDTO zsNormalUpdateOrderDTO);

    ResultDTO verifyFactoryUpdateOrder(FactoryUpdateOrderDTO factoryUpdateOrderDTO);

    /**
     * 获取预付款提示，分单撤回、派单撤回、取消使用
     * @param orderId
     * @param workId
     * @return
     */
    String getAmountTips(Long orderId, Long workId);

    /**
     *  校验返修是否过保
     * @param orderId
     * @return
     */
    ResultDTO verifyRework(Long orderId);
}
